<?php
/**
 * TODO: te devuelve los últimos twitts del usaurio (de twitter o identi.ca)
 * 
 * TODO: La clase permite obtener los últimos twitts del usuario
 * 		 por defecto devuelve los últimos 3, pero es posible 
 * 		 obtener hasta 100 (límite de la API).
 * 
 * @version $Id
 * @author  Max Valdez <garaged@gmail.com>
 * @since   2010-02-05
 */
class TwitterIdentica {
	/**
	 * TODO: short description.
	 * 
	 * @param  int  $identica 
	 * @version $Id
	 * @author  Max Valdez <garaged@gmail.com>
	 * @since   2010-02-08
	 */
	public function __construct( $user, $identica = false ) {
		$this->user = $user;
		if ( $identica ) {
			$this->serv = "Identi.ca";
			$this->URL = 'http://identi.ca/api/statuses/user_timeline';
		} else {
			$this->serv = "Twitter";
			$this->URL = 'http://twitter.com/statuses/user_timeline';
		}
		$this->out = Array();
	}
	/**
	 * TODO: devuelve el timeline del usuario
	 * 
	 * @return arreglo con los twitts listo pa escupirse al canal
	 * @version $Id
	 * @author  Max Valdez <garaged@gmail.com>
	 * @since   2010-02-05
	 */
	public function getTimeline( $n = null ){
		$count = 3;
		if ( $n > 0 ) {
			$count = $n;
		}
		$out = get_url( "$this->URL/$this->user.json?count=$count" );
		$out = json_decode($out);
		if (isset($out->error)) {
			$this->out[] = "$this->user no tiene cuenta en $this->serv";
		} else {	
			$this->out[] = "-- Twitts ($this->serv) recientes de '$this->user'";
			foreach ( $out as $twitt ) {
				$text = $twitt->text;
				$date = $twitt->user->created_at;
				$name = $twitt->user->name;
				$out = "$name: $text";
				if ( $twitt->in_reply_to_screen_name != null ) {
					$out .= " (respuesta a $twitt->in_reply_to_screen_name)";
					#$reply_status = $twitt->in_reply_to_status_id;
				}
				$out .= " [$date.]";
				$this->out[] = $out;
			}
		}
		return $this->out;
	}
}
